1. Field of the Invention
The present invention relates to a method and system for correlating the movement of an input device at a first location with the movement of a cursor of a remote computer at a second location, remote from the first location, and, in one embodiment, to the correlation of the virtual movement of a mouse device at a keyboard, video and mouse (KVM) switch with at least one acceleration setting associated with the remote computer.
2. Discussion of the Background
FIG. 1 illustrates a known configuration for a digital keyboard, video and mouse (KVM) switch 100, such as a DSR 1020, 2020, 4020 or 8020 available from Avocent Corp., the assignee of the present application. The KVM switch 100 is illustratively connected to a computer 110 (e.g., a blade server) in a rack housing 120 via a communications medium 130, such as at least one CAT-5 cable. The KVM switch 100 may alternatively be coupled to a stand-alone computer (not shown) using the same type of communications medium 130. A user, such as a system administrator, can control the computer 110 utilizing a series of human interfaces.
The first interface that can control the computer 110 is a direct-link keyboard/video/mouse configuration 140 that is directly connected to corresponding keyboard, video and mouse ports (see FIG. 2) of the KVM switch 100. In order to use the first interface, the user is typically within normal cable lengths of the KVM switch 100. Alternatively, the KVM ports of the KVM switch 100 may alternatively be coupled to another KVM switch as part of a cascade of KVM switches.
The second interface that can control the computer 110 is a control computer 160 that is connected to the KVM switch 100 indirectly via a network 170, such as an Ethernet-based packet switched network. The control computer 160 may also connect to the KVM switch 100 via a telephone network 180 utilizing at least one modem 185. The control computer 160 is a general purpose computer (such as might be running one of the Microsoft Windows™ Operating Systems (e.g., XP, 2000, ME, 98 or 95)) that also includes a control program for interacting with the KVM switch 100. The control program may include the DSView™ family of software (e.g., DSView 2 and DSView 3) available from Avocent Corp. Using such a control program, the user is able to utilize a local input device 190 (e.g., a mouse, a trackball or a tablet) to interact with the video being received from the remote computer 110.
The third interface that can be used to control the computer 110 is a browser-based computer 165 which utilizes a web-browser (e.g., Internet Explorer™ by Microsoft or Mozilla Firefox™). The browser-based computer 165, like the control computer 160, may connect to the KVM switch 100 via either a network 170 or via a telephone network 180 utilizing at least one modem 185.
FIG. 2 illustrates in greater detail the connections of a known KVM switch 100. In the illustrated embodiment, the KVM switch 100 connects a user (e.g., via a direct-link keyboard/video/mouse configuration 140, or at either control computer 160 or browser-based computer 165) to up to thirty-two remote computers 110 via communications media 130 connected to the remote network ports 135. Using a circuit such as a DSRIQ 115, the digital signals (keyboard and mouse) are combined into a single digital protocol for transmission across communications media 130, and the video signals are placed on separate twisted pair wires (one R, G, B signal per wire pair) within a single cable. Commercially available DSRIQs available from Avocent include DSRIQ-PS2, PS2L, -USB, -USB2 and -VSN.
One problem associated with the above-noted configurations is that when a user of the control computer 160 utilizes the input device 190, a cursor that provides the most rapid feedback to the user is the cursor that is generated at the local computer, i.e., at control computer 160. The movement of local cursor, however, may not, and often does not, correspond to how the cursor of the remote computer 110 reacts to the same movements, depending on at least one configurable movement parameter.
Under the Windows™ Operating System, it is possible to establish acceleration parameters that effect how the physical movement of an input device is converted into movement of the cursor on the display. In particular, registry entries (such as “MouseSpeed”) can be created and subsequently read that control the acceleration of the mouse as it moves. Table I below illustrates the acceleration parameters that can be set under the Windows 2000 Operating System.
TABLE IAcceleration Settingon Mouse ControlMouseSpeedMouseThrehold1MouseThreshold2Panel GUIregistry entryregistry entryregistry entryNone000Low170Medium2412High246
According to Table I, when the MouseSpeed registry entry is set to a value of zero (“0”), no acceleration modifications are made to mouse movements. This corresponds to the setting normally set when using known KVM switches 100 to avoid the mismatch (or lack of synchronization) between the local cursor movement and the remote cursor movement. However, this setting can be reset by a user that is unfamiliar with the consequences, such that a mismatch occurs. Moreover, a computer 110 to be connected to a KVM switch 100 may be factory set to have a non-zero value set for “MouseSpeed” such that there may be a mismatch even when the computer 110 is first connected to the KVM switch 100.
If acceleration is enabled, then the MouseSpeed registry entry will be non-zero, such as 1 or 2. When the remote computer 110 is set to use Low Acceleration, then the MouseSpeed entry is set to one (“1”). Under that configuration, the MouseThreshold1 and MouseThreshold2 entries are set to 7 and 0, respectively.
Similarly, the MouseSpeed can be set to two (“2”) with corresponding values for MouseThreshold1 and MouseThreshold2 in order to enable medium and high acceleration, respectively.
The threshold entries indicate at what level of movement the movement is accelerated. “MouseThreshold2” specifies a mouse speed that triggers accelerated cursor movement. If, within the interval between mouse interrupts, the mouse moves by more than the number of units specified in the value of this entry, the system can accelerate the cursor. When accelerated, the cursor moves more than one unit for each one-unit movement of the mouse. The amount of acceleration depends on the value of MouseSpeed. If the value of MouseSpeed is 1 or 2, cursor speed doubles when the mouse speed reaches MouseThreshold1. If the value of MouseSpeed is 2, cursor speed quadruples when the mouse speed reaches MouseThreshold2.
Under Windows XP, registry entries are identical to Windows 2000 with the addition of a MouseSensitivity entry. If “Enhance Pointer Precision” is checked in the Mouse Control Panel GUI values used for the registry entries are as shown in Table II.
TABLE IIEnhance PointerMouseSpeedMouseThrehold1MouseThreshold2Precisionregistry entryregistry entryregistry entryNot Checked000Checked1610
MouseSensitivity is set via the “Pointer Speed” setting on the Mouse Control Panel GUI. If MouseSensitivity is set to a value of zero (the lowest value which can be set through the Mouse Control Panel GUI is one—setting it to zero requires editing or programmatic manipulation of the registry), and “Enhance Pointer Precision” is not checked, then under Windows XP the registry entries cause the cursor to move in a manner identical to Windows 2000. If MouseSensitivity is set to a non-zero value, and if “Enhance Pointer Precision” is not checked, then MouseSensitivity acts as a multiplier on mouse input. When “Enhance Pointer Precision” is checked the cursor moves in a manner as described in Pointer Ballistics for Windows XP, the entire contents of which are incorporated herein by reference and included with the application as filed.
Under Windows NT, the MouseSpeed registry entries are set as described below in Table III.
TABLE IIISpeed Setting onMouse ControlMouseSpeedMouseThrehold1MouseThreshold2Panel GUIregistry entryregistry entryregistry entrySlow (slider000fully left)Slider + 1 tick1100mark from leftSlider + 2 tick170marks from leftSlider + 3 tick140marks from leftSlider + 4 tick2412marks from leftSlider + 5 tick249marks from leftFast (slider246fully right)
Under Linux, the user can set the mouse acceleration through a Linux utility called xset. xset takes two parameters: the acceleration value and the threshold value. With those two settings the mouse moves on a 1:1 basis until the threshold value is reached at which point it then moves by the multiple specified by the acceleration value. By putting the xset command into a file that gets run at startup, such as /etc/rc.local the mouse settings can be set each time Linux is started.